<template>
  <view>
    <view v-for="item in goodsList" :key="item.goods_id" @click="toDetail(item.goods_id)"><my-good :item="item"></my-good></view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      obj: {
        query: '',
        pagenum: 1, //当前的页码
        pagesize: 10 //当前的页容量
      },
      // 商品列表
      goodsList: [],
      // 商品总数
      total: 0,
      defaultPic: 'https://img3.doubanio.com/f/movie/8dd0c794499fe925ae2ae89ee30cd225750457b4/pics/movie/celebrity-default-medium.png',
      isLoding: false //节流阀
    };
  },
  onLoad(options) {
    console.log(options);
    this.obj.query = options.query;
    this.getGoodsList();
  },
  methods: {
    async getGoodsList(isPull) {
      // ** 打开节流阀
      this.isloading = true;
      const { data: res } = await uni.$http.get('/api/public/v1/goods/search', this.obj);
      if (res.meta.status !== 200) return uni.$showMsg();
      console.log(res);
      // 总数
      this.total = res.message.total;
      // 商品详情数据
      this.goodsList = [...this.goodsList, ...res.message.goods];
      if(isPull){
        // 关闭加载框
        uni.stopPullDownRefresh()
      }
      // 关闭节流阀
     this.isloading = false;
    },
    toDetail(id){
      uni.navigateTo({
        url:`/pages/goods_detail/main?goods_id=${id}`
      })
    }
  },
  // 上拉触底
  onReachBottom() {
    // 这个公式成立表示没有下一页的数据了
    if (this.obj.pagenum * this.obj.pagesize >= this.total) return uni.$showMsg('没有更多了');
    // 判断节流阀是不是在加载数据在加数据的就不要在加载数据了
    if (this.isloading) return;
    this.obj.pagenum += 1;
    this.getGoodsList();
  },
  // 下拉刷新
  onPullDownRefresh() {
  // 重置数据
    this.obj.pagenum=1,
    this.goodsList=[],
    this.total=0,
    this.isLoding=false,
    // 重新发送请求
    this.getGoodsList(true)
  }
};
</script>

<style lang="scss"></style>
